# 导入所需的库和模块
from langchain.schema import (
    HumanMessage,
    SystemMessage
)
from langchain_openai import ChatOpenAI
import yaml

with open('config.yaml') as file:
    data = yaml.load(file, Loader=yaml.FullLoader)


# 创建一个聊天模型的实例
chatAI = ChatOpenAI(model="gpt-3.5-turbo",
                        temperature=0,
                        max_tokens=2000,
                        api_key=data['openai_api_key_github_website'],
                        base_url=data['openai_github_website_base_url'])

class CommandlineChatbot:
    def __init__(self):
        self.chat = chatAI
        self.messages = [SystemMessage(content="你是一个花卉行家。")]

    # 定义一个循环来持续与用户交互
    def chat_loop(self):
        print("Chatbot 已启动! 输入'exit'来退出程序。")
        while True:
            user_input = input("你: ")
            if user_input.lower() == 'exit':
                print("再见!")
                break
            self.messages.append(HumanMessage(content=user_input))
            response = self.chat.invoke(self.messages)
            print(f"Chatbot: {response.content}")

# 如果直接运行这个脚本，启动聊天机器人
if __name__ == "__main__":
    bot = CommandlineChatbot()
    bot.chat_loop()

# # 创建一个消息列表
# messages = [
#     SystemMessage(content="你是一个花卉行家。"),
#     HumanMessage(content="朋友喜欢淡雅的颜色，她的婚礼我选择什么花？")
# ]

# # 使用聊天模型获取响应
# response = chat.invoke(messages)
# print(response)
